Saving and loading model¶
When you have lots of data and training takes a lot of time option with saving and loading model could be useful. First you need to fit the model, then save it and load.
Fit model¶
from lifetimes import BetaGeoFitter
from lifetimes.datasets import load_cdnow_summary
data = load_cdnow_summary(index_col=[0])
bgf = BetaGeoFitter()
bgf.fit(data['frequency'], data['recency'], data['T'])
bgf
"""<lifetimes.BetaGeoFitter: fitted with 2357 subjects, a: 0.79, alpha: 4.41, b: 2.43, r: 0.24>"""
Saving model¶
Model will be saved with dill to pickle object. Optional parameters save_data
and save_generate_data_method
are present to reduce final pickle object size for big dataframes.
Optional parameters:
save_data
is used for saving data from model or not (default:True
).save_generate_data_method
is used for savinggenerate_new_data
method from model or not (default:True
)
bgf.save_model('bgf.pkl')
or to save only model with minumum size without data
and generate_new_data
:
bgf.save_model('bgf_small_size.pkl', save_data=False, save_generate_data_method=False)
Loading model¶
Before loading you should initialize the model first and then use method load_model
bgf_loaded = BetaGeoFitter()
bgf_loaded.load_model('bgf.pkl')
bgf_loaded
"""<lifetimes.BetaGeoFitter: fitted with 2357 subjects, a: 0.79, alpha: 4.41, b: 2.43, r: 0.24>"""